package com.guochaojava.service;

import com.guochaojava.model.Member;
import com.guochaojava.param.MemberParam;

import javax.servlet.http.HttpServletRequest;

/**
 * 会员业务接口
 *
 * @author guochao
 */
public interface MemberService {
    /**
     * 根据主键删除记录
     *
     * @param id 主键id
     * @return sql影响行数
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 新增记录
     *
     * @param record 记录
     * @param request 请求对象
     * @return sql影响行数
     */
    int insertSelective(MemberParam record, HttpServletRequest request);

    /**
     * 根据主键查找记录
     *
     * @param id 主键id
     * @return 查找记录
     */
    Member selectByPrimaryKey(Integer id);

    /**
     * 根据主键更新记录
     *
     * @param record 记录包含主键
     * @return sql影响行数
     */
    int updateByPrimaryKeySelective(Member record);

    /**
     * 根据openId查询记录
     *
     * @param openId
     * @return 查询结果
     */
    Member selectByOpenId(String openId);

    /**
     * 根据openId 发起比赛
     *
     * @param openId
     * @return 查询结果
     */
    Member start(String openId);

    /**
     * 根据主键id获取排名
     *
     * @param id
     * @return 排名
     */
    int rank(Integer id);
}
